from flask import Flask, render_template, request,flash
import os
import time
app = Flask(__name__)
app.secret_key=os.urandom(24)

# score 改为整数类型，避免后续数值比较报错
LIST = [1, 2, 3, 4, 5]
DETAILS = {
    "name": "张三",
    "age": "10",  # 若 age 需数值比较，也可改为 int：10
    "gender": "女",
    "score": 100  # 关键修正：字符串→整数
}


@app.route('/login', methods=['GET', 'POST'])
def login():
    # 定义错误提示变量，默认空（无错误）
    error_msg = ""

    if request.method == 'GET':
        # GET 请求：显示表单，此时无错误提示
        return render_template('form.html')

    # POST 请求：处理登录验证
    elif request.method == 'POST':
        # 关键：获取表单数据时，增加「防KeyError」处理（避免表单字段缺失报错）
        username = request.form.get('username', '')  # 第二个参数是默认值
        password = request.form.get('password', '')

        # 验证逻辑
        if username == 'admin' and password == '123456':
            # 登录成功：跳转到首页并传递用户信息
            flash('登录成功',category='success')
            time.sleep(10)
            return render_template('index.html', details=DETAILS,list=LIST)
        else:
            # 登录失败：显示表单，并传递错误提示

            error_msg = "用户名或密码错误，请重新输入！"
            flash(error_msg,category='error')
            return render_template('form.html')

    # 其他请求方法（如 PUT/DELETE）：返回405不允许
    return "不支持的请求方法", 405


if __name__ == '__main__':
    app.run(debug=True, port=5001   )